package be.ipl.pigolo.testDomaine;

import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;

import java.util.Comparator;

import org.junit.Before;
import org.junit.Test;

import be.ipl.pigolo.domaine.Cochon;
import be.ipl.pigolo.domaine.Cochon.Couleur;
import be.ipl.pigolo.domaine.Cochon.Etat;
import be.ipl.pigolo.domaine.Fermier;
import be.ipl.pigolo.domaine.Fermier.STATUS_CONNEXION;
import be.ipl.pigolo.domaine.Fermier.STATUS_JEU;

public class TestFermier {

	/**
	 * @param args
	 */

	private Fermier fermier;
	private Fermier fermier2;
	private Fermier fermier3;
	private Cochon cochon;
	private Comparator fermierComparator;

	@Before
	public void setUp() throws Exception {
		this.fermier = new Fermier("kif", "azerty");
		this.fermier2 = new Fermier("kkf", "aaaaaa");
		this.fermier3 = new Fermier("kif", "azard");
	}

	@Test
	public void testConstructeur() {
		this.fermier = new Fermier("sami", "hibou");
		assertNotNull(fermier);
		assertNull(cochon);
		assertEquals("sami", this.fermier.getNom());
		assertEquals("hibou", this.fermier.getMotDePasse());
		assertEquals(STATUS_CONNEXION.CONNECTE,
				this.fermier.getStatutConnexion());
		assertEquals(STATUS_JEU.HORSJEU, this.fermier.getStatutJeu());

	}

	@Test
	public void testGetNom() {
		assertEquals("kif", this.fermier.getNom());
	}

	@Test
	public void testGetMotDePasse() {
		assertEquals("azerty", this.fermier.getMotDePasse());
	}

	@Test
	public void testGetStatutConnexion() {
		assertEquals(STATUS_CONNEXION.CONNECTE,
				this.fermier.getStatutConnexion());
	}

	@Test
	public void testGetStatutJeu() {
		assertEquals(STATUS_JEU.HORSJEU, this.fermier.getStatutJeu());
	}

	@Test
	public void testSetStatutConnexion() {
		this.fermier.setStatusConnexion(STATUS_CONNEXION.DECONNECTE);
		assertEquals(STATUS_CONNEXION.DECONNECTE,
				this.fermier.getStatutConnexion());
	}

	@Test
	public void testSetStatutJeu() {
		this.fermier.setStatusJeu(STATUS_JEU.OBSERVATEUR);
		assertEquals(STATUS_JEU.OBSERVATEUR, this.fermier.getStatutJeu());
	}

	@Test
	public void testCochon() {
		this.cochon = new Cochon(1, Couleur.ROUGE, Etat.RAMASSER);
		this.fermier.setCochon(cochon);
		assertNotNull(this.fermier.getCochon());
	}
}
